7、子串简写

题目 子串简写

image-45a6fe96

思路分析

image-8b9e258d
#include<bits/stdc++.h>

using namespace std;

int main()

{

	int k;

	string s;

	char c1,c2;

	cin>>k>>s>>c1>>c2;

	int cnt=0;

	for(int i=0;i<s.size();i++){

		if(s[i]==c1){

			for(int j=i;j<s.size();j++){

				if(s[j]==c2){

					if(j-i+1>=k)

						cnt++;

				}

			}

		}

	}

	cout<<cnt;

	return 0;

}

能过六个数据 12分

优化ac是要利用前缀和的性质加上尺取法 有个放缩在里面 没怎么看懂

#include <bits/stdc++.h>

using namespace std;

int k,t;

string s;

long long ans=0;

int main()

{

  char c1,c2;

  cin>>k>>s>>c1>>c2;

  for(int j=0;j<s.length();j++)

  {

      if(s[j]==c1)  t++;

      if(s[j+k-1]==c2) ans+=t;

  }

  cout<<ans;

  return 0;

}

代码实现


同类题型

视频讲解


⬅️ 6、岛屿个数 🏠 00-刷题理模型 ➡️ 8、整数删除